package com.comment.project.io;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

/**
 * @author liupenghui
 * @date 2018/7/20
 * @desc：
 */
public class fileInputStrem {

    /**
     * 读取指定文件内容
     * 输入流 fileInputStream 读操作
     *
     * @param path 文件地址
     * @return String 结果
     */
    public static String readFile(String path) {
        String content = "";
        // 判断文件是否存在
        File file = new File(path);
        if (!file.exists()){
            System.out.println("文件不存在");
            return content;
        }


        FileInputStream fileInputStream = null;
        try {
            //1、 根据path实例化输入流对象
            fileInputStream = new FileInputStream(path);
        } catch (FileNotFoundException e) {
            System.out.println("实例化输入流失败");
            e.printStackTrace();
        }

        try {
            //2、 返回输入流中有多少可以被读的bytes 字节的估计值
                //知识点 java断言assert
                //如果[boolean表达式]为true，则程序继续执行。
                //如果为false，则程序抛出AssertionError，并终止执行
            assert fileInputStream != null;
            int size = fileInputStream.available();
            // 3、根据输入流的中的字节数创建byte数组
///            byte[] bytes = new byte[size];
            // 4、把数据读到数组里
//            fileInputStream.read(bytes);
            // 5、把读取到byte数组里的数据，转成字符串返回
//            content = new String(bytes);
            // 这样写会好些
            int len;
            byte[] bytes = new byte[1024];
            while ((len = fileInputStream.read(bytes))!= -1 ){
                content += new String(bytes);
            }
            return content;
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (fileInputStream != null){
                try {
                    fileInputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                    System.out.println("没有关闭 输入流");
                }
            }
        }

        return content;
    }

    public static void main(String[] args) {
        String path = "C:\\Users\\Administrator\\Desktop\\";
        String fileName = "金融壹账通数据接口错误代码表V2.3.pdf";
        System.out.println(readFile(path+fileName));
    }
}
